package com.army.study.slice;

import com.army.study.ResourceTable;
import com.army.study.component.ListAdapter;
import com.army.study.databean.Item;
import com.army.study.utils.Utils;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.ListContainer;
import ohos.app.Context;

import java.util.List;

public class MainAbilitySlice extends AbilitySlice {

    // 列表容器
    private static ListContainer listContainer;
    // 列表适配器类
    private static ListAdapter listAdapter;
    // 上下文
    private static Context context;


    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);
        context = getContext();

        // 初始化界面
        initView();

        // 将 Media 中的图像转换为 List<PixelMap>。 使用默认大小
        Utils.transResourceIdsToListOnce(context);
        // UI线程更新列表数据
        getUITaskDispatcher().delayDispatch(() -> initData(Utils.getItems()), 10);
    }

    /**
     * 更新界面数据
     * @param items
     */
    public static void initData(List<Item> items) {
        context.getUITaskDispatcher().asyncDispatch(() -> {
            listContainer.setItemProvider(listAdapter);
            listAdapter.replace(items);
        });
    }

    /**
     * 初始化界面
     */
    private void initView() {
        // 获取List容器
        listContainer = (ListContainer) findComponentById(ResourceTable.Id_list);
        // 初始化列表适配器
        listAdapter = new ListAdapter(null, context);
        // 设置列表容器项数据提供者
        listContainer.setItemProvider(listAdapter);

    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
}
